﻿using System;
using System.ServiceModel;
using System.ComponentModel;
using Sinacor.Infra.Common.Exceptions;
using Sinacor.Infra.Service.ExceptionHandling;
using Sinacor.Infra.Service.Security.Services;
using System.Collections.Generic;
using Sinacor.Infra.Common.Exceptions.FaultContracts;

namespace Sinacor.Servico.Bovespa.ResumoFinanceiro.Service.ServiceContract
{
	[ExceptionShielding]
    [ServiceContract(Namespace = "http://www.bovespa.com.br/Sinacor.Servico.Bovespa.ResumoFinanceiro.Service.ServiceContract", SessionMode = SessionMode.Allowed)]
	public interface IResumoFinanceiro 
	{
		[FaultContract(typeof(BusinessFault))]
        [FaultContract(typeof(ValidationFault))]
        [FaultContract(typeof(GeneralFault))]
        [FaultContract(typeof(Sinacor.Infra.Common.Exceptions.FaultContracts.InvalidSessionFault))] 
        [OperationContract(IsTerminating = false, IsInitiating = true, IsOneWay = false, AsyncPattern = false, Action = "ConsultarResumoFinanceiroControleOrdens")]
		List<DataContract.Response.ResumoFinanceiroResponse>
            ConsultarResumoFinanceiroControleOrdens(DataContract.Request.ConsultarResumoFinanceiroRequest request);

        [FaultContract(typeof(BusinessFault))]
        [FaultContract(typeof(ValidationFault))]
        [FaultContract(typeof(GeneralFault))]
        [FaultContract(typeof(Sinacor.Infra.Common.Exceptions.FaultContracts.InvalidSessionFault))] 
        [OperationContract(IsTerminating = false, IsInitiating = true, IsOneWay = false, AsyncPattern = false, Action = "ConsultarResumoFinanceiroFaturamentoBolsas")]
		List<DataContract.Response.ResumoFinanceiroResponse>
			ConsultarResumoFinanceiroFaturamentoBolsas(DataContract.Request.ConsultarResumoFinanceiroRequest request);

        [FaultContract(typeof(BusinessFault))]
        [FaultContract(typeof(ValidationFault))]
        [FaultContract(typeof(GeneralFault))]
        [FaultContract(typeof(Sinacor.Infra.Common.Exceptions.FaultContracts.InvalidSessionFault))] 
        [OperationContract(IsTerminating = false, IsInitiating = true, IsOneWay = false, AsyncPattern = false, Action = "ConsultarComitenteControleOrdens")]
        [TransactionRequired]
		List<Sinacor.Servico.Bovespa.ResumoFinanceiro.Service.DataContract.Response.ComitenteResponse>
			ConsultarComitenteControleOrdens(DataContract.Request.ConsultarComitenteRequest request);

        [FaultContract(typeof(BusinessFault))]
        [FaultContract(typeof(ValidationFault))]
        [FaultContract(typeof(GeneralFault))]
        [FaultContract(typeof(Sinacor.Infra.Common.Exceptions.FaultContracts.InvalidSessionFault))] 
        [OperationContract(IsTerminating = false, IsInitiating = true, IsOneWay = false, AsyncPattern = false, Action = "ConsultarComitenteFaturamentoBolsas")]
        [TransactionRequired]
		List<Sinacor.Servico.Bovespa.ResumoFinanceiro.Service.DataContract.Response.ComitenteResponse>
			ConsultarComitenteFaturamentoBolsas(DataContract.Request.ConsultarComitenteRequest request);

        [FaultContract(typeof(BusinessFault))]
        [FaultContract(typeof(ValidationFault))]
        [FaultContract(typeof(GeneralFault))]
        [FaultContract(typeof(Sinacor.Infra.Common.Exceptions.FaultContracts.InvalidSessionFault))] 
        [OperationContract(IsTerminating = false, IsInitiating = true, IsOneWay = false, AsyncPattern = false, Action = "ConsultarComitenteAnaliticoControleOrdens")]
        [TransactionRequired]
		List<Sinacor.Servico.Bovespa.ResumoFinanceiro.Service.DataContract.Response.ComitenteResponse>
			ConsultarComitenteAnaliticoControleOrdens(DataContract.Request.ConsultarComitenteRequest request);

        [FaultContract(typeof(BusinessFault))]
        [FaultContract(typeof(ValidationFault))]
        [FaultContract(typeof(GeneralFault))]
        [FaultContract(typeof(Sinacor.Infra.Common.Exceptions.FaultContracts.InvalidSessionFault))] 
        [OperationContract(IsTerminating = false, IsInitiating = true, IsOneWay = false, AsyncPattern = false, Action = "ConsultarComitenteAnaliticoFaturamentoBolsas")]
        [TransactionRequired]
		List<Sinacor.Servico.Bovespa.ResumoFinanceiro.Service.DataContract.Response.ComitenteResponse>
			ConsultarComitenteAnaliticoFaturamentoBolsas(DataContract.Request.ConsultarComitenteRequest request);

        [FaultContract(typeof(BusinessFault))]
        [FaultContract(typeof(ValidationFault))]
        [FaultContract(typeof(GeneralFault))]
        [FaultContract(typeof(Sinacor.Infra.Common.Exceptions.FaultContracts.InvalidSessionFault))] 
        [OperationContract(IsTerminating = false, IsInitiating = true, IsOneWay = false, AsyncPattern = false, Action = "CalcularResumoFinanceiro")]
        [TransactionRequired]
		void CalcularResumoFinanceiro(DataContract.Request.CalcularResumoFinanceiroRequest request);

        //[FaultContract(typeof(BusinessFault))]
        //[FaultContract(typeof(ValidationFault))]
        //[FaultContract(typeof(GeneralFault))]
        //[OperationContract(IsTerminating = false, IsInitiating = true, IsOneWay = false, AsyncPattern = false, Action="")]
        //[TransactionRequired]
        ////excluido - esertorio - 200805122140 - ref issue ID0004683 - ref issue ID0004615
        //void AlterarTotalLiquido(DataContract.Request.AlterarTotalLiquidoRequest request);

        [FaultContract(typeof(BusinessFault))]
        [FaultContract(typeof(ValidationFault))]
        [FaultContract(typeof(GeneralFault))]
        [FaultContract(typeof(Sinacor.Infra.Common.Exceptions.FaultContracts.InvalidSessionFault))] 
        [OperationContract(IsTerminating = false, IsInitiating = true, IsOneWay = false, AsyncPattern = false, Action = "AlterarTotalLiquidoControleOrdens")]
        [TransactionRequired]
        [OperationLog]
        //incluido - esertorio - 200805122140 - ref issue ID0004683 - ref issue ID0004615
        DataContract.Response.RetornoAlteracaoNotaResponse AlterarTotalLiquidoControleOrdens(DataContract.Request.AlterarTotalLiquidoRequest request);

        [FaultContract(typeof(BusinessFault))]
        [FaultContract(typeof(ValidationFault))]
        [FaultContract(typeof(GeneralFault))]
        [FaultContract(typeof(Sinacor.Infra.Common.Exceptions.FaultContracts.InvalidSessionFault))] 
        [OperationContract(IsTerminating = false, IsInitiating = true, IsOneWay = false, AsyncPattern = false, Action = "AlterarTotalLiquidoFaturamentoBolsas")]
        [TransactionRequired]
        [OperationLog]
        //incluido - esertorio - 200805122140 - ref issue ID0004683 - ref issue ID0004615
        DataContract.Response.RetornoAlteracaoNotaResponse AlterarTotalLiquidoFaturamentoBolsas(DataContract.Request.AlterarTotalLiquidoRequest request);

        //[FaultContract(typeof(BusinessFault))]
        //[FaultContract(typeof(ValidationFault))]
        //[FaultContract(typeof(GeneralFault))]
        //[OperationContract(IsTerminating = false, IsInitiating = true, IsOneWay = false, AsyncPattern = false, Action="")]
        //[TransactionRequired]
        ////excluido - esertorio - 200805122148 - ref issue ID0004683 - ref issue ID0004615
        //void AlterarPercentualCorretagem(DataContract.Request.AlterarPercentualCorretagemRequest request);

        [FaultContract(typeof(BusinessFault))]
        [FaultContract(typeof(ValidationFault))]
        [FaultContract(typeof(GeneralFault))]
        [FaultContract(typeof(Sinacor.Infra.Common.Exceptions.FaultContracts.InvalidSessionFault))] 
        [OperationContract(IsTerminating = false, IsInitiating = true, IsOneWay = false, AsyncPattern = false, Action = "AlterarPercentualCorretagemControleOrdens")]
        [TransactionRequired]
        [OperationLog]
        //incluido - esertorio - 200805122148 - ref issue ID0004683 - ref issue ID0004615
        DataContract.Response.RetornoAlteracaoNotaResponse AlterarPercentualCorretagemControleOrdens(DataContract.Request.AlterarPercentualCorretagemRequest request);

        [FaultContract(typeof(BusinessFault))]
        [FaultContract(typeof(ValidationFault))]
        [FaultContract(typeof(GeneralFault))]
        [FaultContract(typeof(Sinacor.Infra.Common.Exceptions.FaultContracts.InvalidSessionFault))] 
        [OperationContract(IsTerminating = false, IsInitiating = true, IsOneWay = false, AsyncPattern = false, Action = "AlterarPercentualCorretagemFaturamentoBolsas")]
        [TransactionRequired]
        [OperationLog]
        //incluido - esertorio - 200805122148 - ref issue ID0004683 - ref issue ID0004615
        DataContract.Response.RetornoAlteracaoNotaResponse AlterarPercentualCorretagemFaturamentoBolsas(DataContract.Request.AlterarPercentualCorretagemRequest request);

        //[FaultContract(typeof(BusinessFault))]
        //[FaultContract(typeof(ValidationFault))]
        //[FaultContract(typeof(GeneralFault))]
        //[OperationContract(IsTerminating = false, IsInitiating = true, IsOneWay = false, AsyncPattern = false, Action="")]
        //[TransactionRequired]
        ////excluido - esertorio - 200805122151 - ref issue ID0004683 - ref issue ID0004615
        //void AlterarValorCorretagem(DataContract.Request.AlterarValorCorretagemRequest request);

        [FaultContract(typeof(BusinessFault))]
        [FaultContract(typeof(ValidationFault))]
        [FaultContract(typeof(GeneralFault))]
        [FaultContract(typeof(Sinacor.Infra.Common.Exceptions.FaultContracts.InvalidSessionFault))]
        [FaultContract(typeof(Sinacor.Infra.Common.Exceptions.FaultContracts.LicensingFault))]
        [FaultContract(typeof(Sinacor.Infra.Common.Exceptions.FaultContracts.AccessIsDeniedFault))] 
        [OperationContract(IsTerminating = false, IsInitiating = true, IsOneWay = false, AsyncPattern = false, Action = "AlterarValorCorretagemControleOrdens")]
        [TransactionRequired]
        [OperationLog]
        //incluido - esertorio - 200805122151 - ref issue ID0004683 - ref issue ID0004615
        DataContract.Response.RetornoAlteracaoNotaResponse AlterarValorCorretagemControleOrdens(DataContract.Request.AlterarValorCorretagemRequest request);

        [FaultContract(typeof(BusinessFault))]
        [FaultContract(typeof(ValidationFault))]
        [FaultContract(typeof(GeneralFault))]
        [FaultContract(typeof(Sinacor.Infra.Common.Exceptions.FaultContracts.InvalidSessionFault))]
        [FaultContract(typeof(Sinacor.Infra.Common.Exceptions.FaultContracts.LicensingFault))]
        [FaultContract(typeof(Sinacor.Infra.Common.Exceptions.FaultContracts.AccessIsDeniedFault))] 
        [OperationContract(IsTerminating = false, IsInitiating = true, IsOneWay = false, AsyncPattern = false, Action = "AlterarValorCorretagemFaturamentoBolsas")]
        [TransactionRequired]
        [OperationLog]
        //incluido - esertorio - 200805122151 - ref issue ID0004683 - ref issue ID0004615
        DataContract.Response.RetornoAlteracaoNotaResponse AlterarValorCorretagemFaturamentoBolsas(DataContract.Request.AlterarValorCorretagemRequest request);

        [FaultContract(typeof(BusinessFault))]
        [FaultContract(typeof(ValidationFault))]
        [FaultContract(typeof(GeneralFault))]
        [FaultContract(typeof(Sinacor.Infra.Common.Exceptions.FaultContracts.InvalidSessionFault))]
        [FaultContract(typeof(Sinacor.Infra.Common.Exceptions.FaultContracts.LicensingFault))]
        [FaultContract(typeof(Sinacor.Infra.Common.Exceptions.FaultContracts.AccessIsDeniedFault))] 
        [OperationContract(IsTerminating = false, IsInitiating = true, IsOneWay = false, AsyncPattern = false, Action = "ValidarOperacaoFilhote")]
        void ValidarOperacaoFilhote(DataContract.Request.ValidarOperacaoFilhote request);

	}
}
